﻿/*
 * Jonathan
 * Created by: Jonathan Montiverdi
 * Date: 7/16/2012
 * License: http://jonathan.codeplex.com/license
 */
using System;
using System.Collections.ObjectModel;

namespace Jonathan.Data
{
   /// <summary>
   /// Description of IOptions.
   /// </summary>
   public interface IOptions
   {
      /// <summary>
      /// Event used to notify when the books have been refreshed.
      /// </summary>
      event EventHandler BooksRefreshed;
      
      /// <summary>
      /// Gets the list of owned books.
      /// </summary>
      ObservableCollection<Book> Books { get; }
      
      /// <summary>
      /// Gets the list of available books.
      /// </summary>
      ObservableCollection<Book> AvailableBooks { get; }
      
      /// <summary>
      /// Gets or Sets the user preferences.
      /// </summary>
      UserPreferences Configuration { get; }
      
      /// <summary>
      /// Refreshes the list of books.
      /// </summary>
      void RefreshBooks ();
   }
}
